"""
设置私有权限的方法：
    在属性名和方法名的 前面 加上两个下划线__
"""

# 师傅类
class Master(object):
    def __init__(self):
        self.kongfu = '[古法煎饼果子配方]'

    def make_cake(self):
        print(f'运用{self.kongfu}制作煎饼果子')


# 学校类
class School(object):
    def __init__(self):
        self.kongfu = '[黑马煎饼果子配方]'

    def make_cake(self):
        print(f'运用{self.kongfu}制作煎饼果子')


# 徒弟类
class Prentice(Master, School):
    def __init__(self):
        self.kongfu = '[独创煎饼果子配方]'

        # 定义私有属性
        self.__money = 3000

    # 定义私有方法
    def __info_print(self):
        print(self.kongfu)
        print(self.__money)

    # 做独创煎饼果子
    def make_cake(self):
        self.__init__()
        print(f'运用{self.kongfu}制作煎饼果子')

    # 做古法煎饼果子
    def make_master_cake(self):
        Master.__init__(self)
        Master.make_cake(self)

    # 做黑马煎饼果子
    def make_school_cake(self):
        School.__init__(self)
        School.make_cake(self)


# 徒孙类
class Tusun(Prentice):
    pass


tusun = Tusun()

# error: print(tusun.__money)   私有属性无法继承
print(tusun.kongfu)

# error: tusun.__info_print()   私有方法无法继承
tusun.make_cake()

# 强制访问类的私有方法和私有属性  _Prentice__money 进行访问
tudi = Prentice()
print(tudi._Prentice__money)
tudi._Prentice__info_print()